【小ネタ】Macで作成されたzipファイルをWindowsで解凍すると文字化けする事象への対応方法
はじめに
こんにちは、猫とアポロチョコと Systems Manager が好きな、テクニカルサポートの m.hayakawa です。
Mac で作成された日本語のファイル名が含まれたzipファイルを Windows 環境で解凍すると文字化けすることに悩まされていませんか?
私は先日ありました。
始めにおことわりしたい点として、Windows に WSL2 環境を構築して、Linux 環境で実行することが前提となります。
WSL2 の導入方法については、下記の記事が参考になります。
Windows 11 で WSL2 をセットアップしてみた | DevelopersIO
Windows Subsystem for Linux 2(WSL 2)をセットアップしてみた | DevelopersIO
Windows10+WSL2環境のLinuxディストリビューションにAWS CLIをインストールしてみた | DevelopersIO
結論
unzip コマンドで -Ocp932
オプションを付けて解凍すると、文字化けを回避できます。
また、圧縮ファイルを Google Drive へ配置した状態で解凍をすると、濁点と半濁点の問題を回避できます。
検証
こんな構成のディレクトリを作ってみました。
にほんごふぁいるめい |- Japan |- Japan.txt |- にっぽんにほんご |- にっぽんにほんご.txt |- にほんごJapan |- にほんごJapan.txt |- 日本語 |- 日本語.txt
これを Mac(macOS Ventura 13.4.1) を使っているユーザーに渡して圧縮してもらって、Windows の Explore で解凍してみました。
思ったよりも大変なことになってますね。ディレクトリ関係も壊れてる部分もありそうです。
では、こちらを文字化けしないように解凍してみます。
WSL2 を開き、適当なフォルダ(C:\test)へ入れた圧縮ファイルを -Ocp932
オプションを付けて解凍します。
oh my god... 濁点と半濁点が分かれたファイル名になってしまいました。
エクスプローラー上では問題なさそうに見えているのですが、ファイル名を編集するときにバックスペースを1回入力すると、「ご」⇒「こ」となってしまい、濁点だけが消えるという挙動になります。
これを対処するための方法を模索しましたが、これといったものが見つからず、万策尽き果てたと思った頃にこんな記事を見つけました。
Mac OS X の NFD 問題での対策諸々 - Qiita
Dropbox ◯: どうやら、NFC, NFD の手当てをしているみたいだ。クライアントの OS 種別は分かってますからね。さすが。
これを見て、クラウドファイルサーバー上に圧縮ファイルを配置して解凍すれば対処できるのでは?と考えました。
私の環境では、G ドライブが google ドライブになっているので、そこに圧縮ファイルを配置して再度解凍してみました。
解凍する際は濁点と半濁点が分かれてしまっているのですが、ls コマンドで確認をすると濁点と半濁点が分かれていません。
エクスプローラー上でも、ファイル名を編集するときにバックスペースを1回入力すると、「ご」が消える挙動になります。
なぜ Google Drive 上だと濁点と半濁点問題が解決するかは、様々な記事がありますが、今一つはっきりとしたことは分かりませんでした。ですが、困ったときの小ネタとして覚えておくと良いかもしれません。
この記事がどなたか困っている人の助けになれば幸いです。
参考資料
GoogleAppsScriptでのGoogleDrive上のフォルダ/ファイル名検索におけるuft-8-macによるエラーについて - Qiita